Report

Author

Kazuharu Yanagimoto

Published

April 17, 2023

Replication

Simulation

1. Generating Data

Stata

R

2. Diagnosis

Goodman-Bacon (2021)

Stata

R

Jakiela (2021)

Stata

R

Stata

R

3. Estimation Results

Stata

R

Stata

R

Application: Replication of Cicala (2022)

1. Data Overview

Stata

R

2. Diagnosis

Stata

R

Stata

R

3. Estimation Results

Stata

R

Stata

R

Discussion

Benchmark

Simulation

mm:ss:mmm Num. Evaluation
Sun and Abraham 00:00:358 100
Callway and Sant'Anna 00:01:206 100
de Chaisemartin and D'Haultfoeuille 08:21:602 10
Borusyak, Jaravel, Spiess 00:01:027 100
Gardner 00:01:161 100

Application

hh:mm:ss Num. Evaluation
Sun and Abraham 00:01:32 1
Callway and Sant'Anna 02:34:57 1
de Chaisemartin and D'Haultfoeuille 00:14:42 1
Borusyak, Jaravel, Spiess 00:02:24 1
Gardner 00:00:05 1
  • 固定効果入りの回帰分析のためのパッケージである Stata のreghdfe と R の fixest では数倍 ~ 数十倍の速度差がある. fixest:Benchmark
  • TWFEベースの手法 (Sun and Abraham (2021)) や Imputationの手法 (Borusyak, Jaravel, and Spiess (2022), Gardner (2022)) は fixest を利用できるため, Stataと比べてかなり早い
  • Rolling Method は基本的にRでループを回すのでかなり遅くなる. Rcpp などを用いればもう少し速く実装できそうだが (がそれはあまり行われなさそう)

Stata ↔︎ R

推定値の違い

Simulationの結果はほとんど同じ (おそらく Seed によるデータの差のみ). 応用編の方では,

  • Naive TWFEは完全に一致, Sun and Abraham もほとんど同じ (だが少し違う)
  • Callaway and Sant’Anna は -1でNormalizedされていないので要検証
  • dCDH と Borusyak et al. は似たような推定値だが同じオプションが選択できてないので, それが原因かもしれない
  • Gardnerはかなり違うので要検証

de Chaisemartin and D’Haultfœuille (2022)

  • Rパッケージはここ3年メンテナンスされてなく, Stataのパッケージに追いつけていない模様. kylebutts/did2s#19
  • Stata の did_multiplegtfirstdiff_placeboweight オプションがない. また, Cicalaのreplicationで cluster=pca_modate を指定するとエラーが出る.

Gardner (2022)

  • did2s::did2s はLarge Matrixに対してAnalytical Standard Errorを計算できない. これはパッケージの仕様らしい. kylebutts/did2s#12
  • ただし, bootstrap=True にしてもバグのようなエラーが出る. feols を用いて Stata と同じ実装をした.
  • Stataの推定値と大きく異なるので調べる必要がある

Stata のコードに関して

パッケージ

  • タイポ, 依存パッケージの不足などを修正 (code/stata/setup.do)
  • ddtiming がダウンロードできず. 現在 ssc に存在しない.

Goodman-Bacon (2021)

  • 応用編の方で xtset pca_id time が “time repeated time values within panel” エラーを吐く

Wooldridge (2021) の実装

  • よりシンプルな実装に変更 (code/stata/simulation/3_estimation.do)

Gardner (2022) が Biased な推定値を出力する

  • Negative weight の問題というより, not-yet-treatedの場合の実装に気をつける必要がある.
  • \(\tau_{18}, \dots, \tau_{25}\) に対する not-yet-treatedなサンプルが存在しないので, そもそも impute できない.
  • 第二ステージで d89 == 1 & time >= 2007 とサンプルを落とす必要がある
  • Rでは did2s::did2s を用いることで Unbiasedな推定値が得られている

その他

  • Cicala (2022) のデータの二次配布のライセンスはどうなっているか
  • Dailyに変換するRコードは必要か
  • データ形式はCSVの方がRユーザーに優しいのではないか

References

Borusyak, Kirill, Xavier Jaravel, and Jann Spiess. 2022. “Revisiting Event Study Designs: Robust and Efficient Estimation.” arXiv. https://doi.org/10.48550/arXiv.2108.12419.
Cicala, Steve. 2022. “Imperfect Markets Versus Imperfect Regulation in US Electricity Generation.” American Economic Review 112 (2): 409–41. https://doi.org/10.1257/aer.20172034.
de Chaisemartin, Clément, and Xavier D’Haultfœuille. 2022. “Two-Way Fixed Effects and Differences-in-Differences with Heterogeneous Treatment Effects: A Survey.” arXiv. https://doi.org/10.48550/arXiv.2112.04565.
Gardner, John. 2022. “Two-Stage Differences in Differences.” arXiv. https://doi.org/10.48550/arXiv.2207.05943.
Goodman-Bacon, Andrew. 2021. “Difference-in-Differences with Variation in Treatment Timing.” Journal of Econometrics, Themed Issue: Treatment Effect 1, 225 (2): 254–77. https://doi.org/10.1016/j.jeconom.2021.03.014.
Jakiela, Pamela. 2021. “Simple Diagnostics for Two-Way Fixed Effects.” arXiv. https://doi.org/10.48550/arXiv.2103.13229.
Sun, Liyang, and Sarah Abraham. 2021. “Estimating Dynamic Treatment Effects in Event Studies with Heterogeneous Treatment Effects.” Journal of Econometrics 225 (2): 175–99. https://doi.org/10.1016/j.jeconom.2020.09.006.
Wooldridge, Jeffrey M. 2021. “Two-Way Fixed Effects, the Two-Way Mundlak Regression, and Difference-in-Differences Estimators.” SSRN Electronic Journal. https://doi.org/10.2139/ssrn.3906345.